package llm

import (
	"context"

	"gitee.com/flycash/ai-gateway-demo/internal/domain"
)

//go:generate mockgen -source=./type.go -destination=../../mocks/llm.mock.go -package=llmmocks -typed=true Service
type Service interface {
	SyncInvoke(ctx context.Context, req domain.SyncRequest) (domain.SyncResponse, error)
	StreamInvoke(ctx context.Context, req domain.SyncRequest) (chan domain.StreamEvent, error)
	AsyncInvoke(ctx context.Context, req domain.AsyncRequest) (domain.AsyncResponse, error)
	// 提供服务是否可用
	Healthy(ctx context.Context) bool
}
